package br.uff.es1.dao;

import br.uff.es1.Cupom;
import java.util.ArrayList;
import java.util.Date;

public class CupomDAO{
    private ArrayList<Cupom> cupons;
    
    public CupomDAO(){
      this.cupons = new ArrayList();
      buscar(this.inserir(new Date(), 20)).setNumero(111);
    }
    
    public int inserir(Date dataValidade, double valor){
        Cupom cupom = new Cupom(dataValidade, valor);
        this.cupons.add(cupom);
        return cupom.getNumero();
    }
    
    public boolean validaCupom(int idCupom){
        for (int i = 0; i < this.cupons.size(); i++) {
            if(this.cupons.get(i).getNumero() ==  idCupom){
                Date data = new Date();
                int dataAtual = data.getDate();
                if(this.cupons.get(i).getDataValidade().getDate() >= dataAtual){
                    return true;
                }
            }
        }
        return false;
    }
    
    public ArrayList<Cupom> obterTodos(){
        return cupons;
    }
    
    public boolean remover(Integer numero){
        int idCupom = this.pegarIdCupom(numero);
        if(this.pegarIdCupom(numero) < 0){
            return false;
        }else{
            this.cupons.remove(idCupom);
            return true;
        }
    }
    
    public int pegarIdCupom(int numero){
        for (int i = 0; i < cupons.size(); i++) {
            if(this.cupons.get(i).getNumero() == numero){
                return i;
            }
        }
        return -1;
    }
    
    public Cupom buscar(int numero){
        for (int i = 0; i < cupons.size(); i++) {
            if(this.cupons.get(i).getNumero() == numero){
                return this.cupons.get(i);
            }
        }
        return null;
    }
}